package java6681.lesson14;

import java.io.*;
import java.net.Socket;
import java.util.Properties;
import java.util.Scanner;

/*
（1）从配置文件中读取服务端的IP和端口号
（2）按给定的IP和端口号向服务器端发送连接请求
（3）建立连接后，立即接收服务平台发来的欢迎用语，显示在控制台上

（4）从键盘输入问题，并发送给服务平台
（5）接收并显示服务平台给出的答案
（6）重复（4）、（5），直到输入谢谢，停止会话（【思考】如何设置结束条件？）
（7）关闭
* */

//java java6681.lesson14.OneClient6681
//javac -encoding UTF-8 java6681/lesson14/OneClient6681.java
//"192.168.43.65"
public class OneClient6681 {
    public static void main(String[] args) throws IOException {
        // （1）从配置文件中读取服务端的IP和端口号
        Properties properties = new Properties();
        String ip = properties.getProperty("ip");
//        String port = properties.getProperty("port");

        System.out.println("客户端");

        // （2）按给定的IP和端口号向服务器端发送连接请求
        Socket socket = new Socket(ip, 18888);

        String client = socket.getInetAddress().getHostAddress() + ":" + socket.getPort();
        System.out.println("连接：" + client);

        // （3）建立连接后，立即接收服务平台发来的欢迎用语，显示在控制台上
        Scanner reader = new Scanner(socket.getInputStream());
        System.out.println(reader.nextLine());

        //（4）从键盘输入问题，并发送给服务平台
        //（5）接收并显示服务平台给出的答案
        //（6）重复（4）、（5），直到输入谢谢，停止会话（【思考】如何设置结束条件？）
        Scanner sc = new Scanner(System.in);
        PrintStream printStream = new PrintStream(socket.getOutputStream(), true);
        while (true) {
            System.out.println("请输入问题：");
            if (sc.hasNext()) {
                String next = sc.nextLine();
                printStream.println(next);
                if ("谢谢".equals(next)) {
                    System.out.println(socket.getPort() + ":" + reader.nextLine());
                    break;
                }
                System.out.println(socket.getPort() + ":" + reader.nextLine());
            }
        }
        // （7）关闭
        socket.close();
    }
}
